//
// Created by XML on 2023/9/27.
// 指针的左值与右值
#include <io_utils.h>

int main(){

    int a = 1;

    // 指针运算符*在左边是左值 ，右边是右值

    // 左值：空间（内存地址，相当于门牌号）
    // 右值：空间内的值（value）
    int *p = &a;
    PRINT_INT(*p); // 1
    *p = 20; //   左值是空间，给空间换一个值，
    PRINT_INT(*p); //20

    int b =2;
    PRINT_INT(b); // 2
    b = *p; // 右值：是value，将访问空间的value值赋值给b
    PRINT_INT(b);//20

    int array[5] = {0};

    int *pp = &array;
    PRINT_INT_ARRAY(array,5);
    *pp = 1; // 下标0赋值
    PRINT_INT_ARRAY(array,5);
    *(pp++)= 2; //下标1赋值
    *(pp+2) = 3; // 下标3赋值
    PRINT_INT_ARRAY(array,5);


    return 0;
}